<?php
	// On prolonge la session
	session_start();
	
	$id_anim='';
	$code='';
	$message='';
	
	require_once dirname(__FILE__) . "/../../includes/config.php";
	require_once PHP_ROOTPATH.'/classes/database.php';
	$idconnect = Database::getInstance();
	
			
	//vérification des droits de l'utilisateur
	if(isset($_SESSION['membre_id']) ){	
		// On teste si la variable de session existe et contient une valeur
		if(empty($_SESSION['id_anim'])){
			// Si inexistante ou nulle, on redirige vers le formulaire de login
			header('Location: ../saisie.php');
			exit();
		}
		else{
			$id_anim=$_SESSION['id_anim'];
			$code=$_SESSION['code'];
		}
		
		if(!empty($_POST)){
			
			//vérfication que les champs ont bien été remplis
			if(empty($_POST['terme']) || empty($_POST['date_f'])){
				$message = 'Veuillez au moins indiquer si la portee est arrivée à terme et la date de fécondation';
			}
			else{
				$_POST['terme'] = htmlspecialchars($_POST['terme']);
				$_POST['date_f'] = htmlspecialchars($_POST['date_f']);			
				
				if(preg_match("#^\d\d\/\d\d\/\d\d\d\d$#",$_POST['date_f'])){
					// vérification que la portée n'existe pas
					$query = pg_query($idconnect,"SELECT id_portee FROM portee WHERE a_terme='".$_POST['terme']."' AND date_fecondation='".$_POST['date_f']."' AND id_animal_mere=$id_anim");
					$num = pg_num_rows($query);
					if($num!=0){ 
						$back = pg_fetch_assoc($query);
						$id_portee = $back['id_portee'];
						$message .= "La portée exsite déjà, mise à jour. ";
					}
					else{//remplissage de la table portée
						$sql = pg_query($idconnect,"INSERT INTO Portee(a_terme,date_fecondation,id_animal_mere) VALUES('".$_POST['terme']."','".$_POST['date_f']."','".$id_anim."') RETURNING id_portee");
						$insert_row = pg_fetch_row($sql);
						$id_portee = $insert_row[0];
						$message .= "Création de la portée. ";
					}
					//récupération des champs remplis et mise à jour de la table portée
					if(!(empty($_POST['nb'])) && $_POST['nb']!="none"){
						$_POST['nb'] = htmlspecialchars($_POST['nb']);
						$sql2 = pg_query($idconnect,"UPDATE Portee SET nbr_petits=".$_POST['nb']." WHERE id_portee=".$id_portee);
					}
					if(!(empty($_POST['survie'])) && $_POST['survie']!="none"){
						$_POST['survie'] = htmlspecialchars($_POST['survie']);
						$sql2 = pg_query($idconnect,"UPDATE Portee SET nbr_petits_survecu=".$_POST['survie']." WHERE id_portee=".$id_portee);
					}
					if(!(empty($_POST['male1'])) && !(empty($_POST['male1_type']))){
						$_POST['male1'] = htmlspecialchars($_POST['male1']);
						$_POST['male1_type'] = htmlspecialchars($_POST['male1_type']);
						$message .= modification_male($_POST['male1'],$id_portee,$_POST['male1_type'],$idconnect);
					}
					if(!(empty($_POST['male2'])) && !(empty($_POST['male2_type']))){
						$_POST['male2'] = htmlspecialchars($_POST['male2']);
						$_POST['male2_type'] = htmlspecialchars($_POST['male2_type']);
						$message .= modification_male($_POST['male2'],$id_portee,$_POST['male2_type'],$idconnect);
					}
					if(!(empty($_POST['male3'])) && !(empty($_POST['male3_type']))){
						$_POST['male3'] = htmlspecialchars($_POST['male3']);
						$_POST['male3_type'] = htmlspecialchars($_POST['male3_type']);
						$message .= modification_male($_POST['male3'],$id_portee,$_POST['male3_type'],$idconnect);
					}
					if(!(empty($_POST['male4'])) && !(empty($_POST['male4_type']))){
						$_POST['male4'] = htmlspecialchars($_POST['male4']);
						$_POST['male4_type'] = htmlspecialchars($_POST['male4_type']);
						$message .= modification_male($_POST['male4'],$id_portee,$_POST['male4_type'],$idconnect);
					}
					if($_POST['terme']=="True"){
						if(!(empty($_POST['date_n'])) && preg_match("#^\d\d\/\d\d\/\d\d\d\d$#",$_POST['date_n'])){
							$_POST['date_n'] = htmlspecialchars($_POST['date_n']);
							if(!(empty($_POST['bebe1'])) && preg_match("#^\d{1,4}$#",$_POST['bebe1'])){
								$_POST['bebe1'] = htmlspecialchars($_POST['bebe1']);
								$message .= creer_bebe($_POST['bebe1'],$_POST['date_n'],$id_portee,$idconnect);
							}
							if(!(empty($_POST['bebe2'])) && preg_match("#^\d{1,4}$#",$_POST['bebe2'])){
								$_POST['bebe2'] = htmlspecialchars($_POST['bebe2']);
								$message .= creer_bebe($_POST['bebe2'],$_POST['date_n'],$id_portee,$idconnect);
							}
							if(!(empty($_POST['bebe3'])) && preg_match("#^\d{1,4}$#",$_POST['bebe3'])){
								$_POST['bebe3'] = htmlspecialchars($_POST['bebe3']);
								$message .= creer_bebe($_POST['bebe3'],$_POST['date_n'],$id_portee,$idconnect);
							}
						}
						else{
							$message .= "La date de naissance n'est pas renseignée ou est invalide, le numéro de portée des bébés n'a pas été mis à jour. ";
						}
					}
					else{
						$message .= "La portee n'est pas arrivée à terme, si vous avez entré des bébés ou une date de naissance, ils ne seront pas enregistrés.\n";
					}
					$message .= "Portée enregistrée"; 
				}
			}
		}
	}
	else{
		header('Location: ../../site.php');
		exit();
	}
	
	function modification_male($code,$portee,$type,$idconnect){
		//mise à jour de la table est_le_pere
		$message2='';
		if(preg_match("#^\d{1,4}$#",$code)){$query = pg_query($idconnect,"SELECT id_animal FROM animal WHERE code_animal='$code'");}
		else{$query = pg_query($idconnect,"SELECT id_animal FROM animal WHERE code_autre_animalerie='$code'");}
		
		$nb = pg_num_rows($query);
		if($nb>1){$message2 = "Plusieurs animaux avec ce code. ";}
		else if($nb==1){
			$back = pg_fetch_assoc($query);
			$query2 = pg_query($idconnect,"SELECT id_animal FROM est_le_pere WHERE id_animal=".$back['id_animal']." AND id_portee=$portee ");
			$nb2 = pg_num_rows($query2);
			if($nb2==0){
				$sql = pg_query($idconnect,"INSERT INTO est_le_pere(id_animal,id_portee,type_pere) VALUES(".$back['id_animal'].",$portee,'$type')");
				$message2 = "Mâle $code ajouté à la table des pères. ";
			}
			else{
				$sql = pg_query($idconnect,"UPDATE est_le_pere SET type_pere='$type' WHERE id_animal=".$back['id_animal']." AND id_portee=$portee ");
				$message2 = "Mise à jour du type père dans la table des pères. ";
			}
		}
		return $message2;
	}
	
	function creer_bebe($code,$date_n,$portee,$idconnect){
		//mise à jour de la portée de l'animal donné
		$query = pg_query($idconnect,"SELECT id_animal FROM animal WHERE code_animal='$code'");
		$nb = pg_num_rows($query);
		$message2='';
		
		if($nb>1){ //si un plusieurs animaux ont ce code animal, on ajoute la date de naissance aux critères de sélection
			$query2 = pg_query($idconnect,"SELECT id_animal,id_portee FROM animal WHERE code_animal='$code' AND date_naissance='$date_n'");
			$nb2 = pg_num_rows($query2);
			if($nb2!=0){ //si un animal a été trouvé avec ce code et cette date de naissance
				$back = pg_fetch_assoc($query2);
				if($back['id_portee']){$message2 = "L'animal $code possède déjà un numéro de portée, il n'a pas été modifié. ";}
				else{
					$sql = pg_query($idconnect,"UPDATE Animal SET id_portee=".$portee." WHERE id_animal=".$back['id_animal']);
					$message2 = "Le numéro de portée de l'animal $code a été mis à jour. ";
				}
			}		
		}
		else if($nb==1){ //si un seul animal a été trouvé avec ce code
			$back = pg_fetch_assoc($query);
			$sql = pg_query($idconnect,"UPDATE Animal SET id_portee=".$portee.", date_naissance='$date_n' WHERE id_animal=".$back['id_animal']);
			$message2 = "Le numéro de portée et la date de naissance de l'animal $code ont été mis à jour. ";
		}
		else if($nb==0){ //si aucun animal n'a été trouvé, on le créé
			$sql = pg_query($idconnect,"INSERT INTO animal(code_animal,date_naissance,id_portee) VALUES ('$code','$date_n',$portee)");
			$message2 = "L'animal $code a été créé. ";
		}	
		return $message2;	
	}				

?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="../../style.css" />
        <?php
			require_once(dirname(__FILE__)."/onglet_animal_s.php");
			$onglet = affiche_onglets($_SESSION['membre_id'],$idconnect);
		?>
		<!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <!--[if lte IE 7]>
        <link rel="stylesheet" href="../../style_ie.css" />
        <![endif]-->
        <title>Base de données microcèbes</title>
        
        <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
		<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
		<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
		<script src="../../js/date_picker.js"></script>
		<script src="../../js/verif_form.js"></script>
		<script>
		$(function() { //affichage du calendrier quand clic sur le champ date
			$( "#datepicker" ).datepicker();
		});
		
		function verif_form(f){ //vérification du formulaire avant l'envoie au serveur
			var dateFOk = verifDate(f.date_f);
			var male1Ok = verifCode(f.male1);
			var male2Ok = verifCode(f.male2);
			var male3Ok = verifCode(f.male3);
			var male4Ok = verifCode(f.male4);
			var termeOk = verifRadio(f.terme);			
			var nbOk = true;
			var survieOk = true;
			var dateNOk = true;
			var terme="";
			
			if(termeOk){
				for (var i=f.terme.length-1; i > -1; i--) {
					if (f.terme[i].checked) {terme=f.terme[i].value;}
				}
				if(terme=="True"){
					nbOk = verifSelect(f.nb);
					survieOk = verifSelect(f.survie);
					dateNOk = verifDate(f.date_n);
				}
			}
						
			var bebe1Ok = verifCode(f.bebe1);
			var bebe2Ok = verifCode(f.bebe2);
			var bebe3Ok = verifCode(f.bebe3);
						
			if(dateFOk && dateNOk && male1Ok && male2Ok && male3Ok && male4Ok && survieOk && nbOk && termeOk && bebe1Ok && bebe2Ok && bebe3Ok){
				return true;
			}
			else{
				alert("Veuillez remplir correctement tous les champs");
				return false;
			}
		}
		</script>
    </head>
 
    <body>
		<?php include((dirname(dirname(dirname(__FILE__))))."/menu.php"); ?>

		<section id="main">
			<header>
				<h1>Saisie - Informations générales animal <?php echo $code; ?></h1>
			</header>
			<?php include(dirname(dirname(__FILE__))."/menu_saisie.php"); ?>
			<section id="animal">
				<?php        
					echo $onglet;
				?>
				
				<section id="contenu">
					<h2>Nouvelle portée:</h2>
					<form method="post" id="anim" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES); ?>" onsubmit="return verif_form(this)">
						<p>
						<label class="code2"><?php echo $message; ?></label><br/>
						<label class="label">Mâle 1:</label><input type="text" name="male1" class="box">
						<span class="code3" id="erreur_male1">* Entrer de 1 à 4 chiffres</span>
						<input type= "radio" name="male1_type" value="réel">Réel
						<input type= "radio" name="male1_type" value="Putatif">putatif
						<span class="code3" id="erreur_male1_type">* Cocher une case</span><br/>
						
						<label class="label">Mâle 2:</label><input type="text" name="male2" class="box">
						<span class="code3" id="erreur_male2">* Entrer de 1 à 4 chiffres</span>
						<input type= "radio" name="male2_type" value="réel">Réel
						<input type= "radio" name="male2_type" value="Putatif">putatif
						<span class="code3" id="erreur_male2_type">* Cocher une case</span><br/>
						
						<label class="label">Mâle 3:</label><input type="text" name="male3" class="box">
						<span class="code3" id="erreur_male3">* Entrer de 1 à 4 chiffres</span>
						<input type= "radio" name="male3_type" value="réel">Réel
						<input type= "radio" name="male3_type" value="Putatif">putatif
						<span class="code3" id="erreur_male3_type">* Cocher une case</span><br/>
						
						<label class="label">Mâle 4:</label><input type="text" name="male4" class="box">
						<span class="code3" id="erreur_male4">* Entrer de 1 à 4 chiffres</span>
						<input type= "radio" name="male4_type" value="réel">Réel
						<input type= "radio" name="male4_type" value="Putatif">putatif
						<span class="code3" id="erreur_male4_type">* Cocher une case</span><br/>
						
						<label class="label">Date de fécondation:</label><input type="text" name="date_f" id="datepicker" class="box">
						<span class="code3" id="erreur_date_f">* Champ du type jj/mm/aaaa</span><br/>
						
						<label class="label">Date de naissance:</label><input type="text" name="date_n" id="datepicker" class="box">
						<span class="code3" id="erreur_date_n">* Champ du type jj/mm/aaaa</span><br/>
						
						<label class="label">A terme:</label>
						<input type= "radio" name="terme" value="True">Oui
						<input type= "radio" name="terme" value="False">Non
						<span class="code3" id="erreur_terme">* Cocher une case</span><br/>
						
						<label class="label">Nombre de petits:</label>
						<select name="nb" type="text" class="box">
							<option value="none">Sélection</option>
							<option value="1">1</option>
							<option value="2">2</option>
							<option value="3">3</option>
						</select>
						<span class="code3" id="erreur_nb">* Sélectionner un nombre de petits</span><br/>
						
						<label class="label">Nombre de petits ayant survécu:</label>
						<select name="survie" type="text" class="box">
							<option value="none">Sélection</option>
							<option value="0">0</option>
							<option value="1">1</option>
							<option value="2">2</option>
							<option value="3">3</option>
						</select>
						<span class="code3" id="erreur_survie">* Sélectionner le nombre de survivants</span><br/><br/>
						
						<label class="label">Code bébé 1:</label><input type="text" name="bebe1" class="box">
						<span class="code3" id="erreur_bebe1">* Entrer un code de 1 à 4 chiffres</span><br/>
						<label class="label">Code bébé 2:</label><input type="text" name="bebe2" class="box">
						<span class="code3" id="erreur_bebe2">* Entrer un code de 1 à 4 chiffres</span><br/>
						<label class="label">Code bébé 3:</label><input type="text" name="bebe3" class="box">
						<span class="code3" id="erreur_bebe3">* Entrer un code de 1 à 4 chiffres</span><br/>
						<input type="submit" class="bouton" value="Valider">
						</p>
					</form>
				</section>
			</section>
		</section>
	</body>
</html>
